// pages/test-mode/tset-mode.js
import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    index: 0,
    list: [],
    option: [],//处理选项
    result: [],//选中的答案
    resultArr: {},//处理选中的答案
    value: 100,//倒计时百分比
    time: '',
    totalTime: 3,//总时间
    show: false,//答题弹框
    answer: [],//处理答案
  },

  getList() {
    wx.request({
      url: 'http://localhost:3001/questions/randList',
      success: res => {
        console.log(res.data.data);
        let arr = res.data.data.map(item => {//遍历data  给data里加一个color属性
          return { ...item, color: '', option: JSON.parse(item.options) }
        })
        this.setData({
          list: arr,
          // option:JSON.parse(res.data.data[this.data.index].options),//当前的题的选项
          answer: JSON.parse(res.data.data[this.data.index].answers)//当前题的答案
        })
        console.log(this.data.answer)
      }
    })
  },

  //点击下面的题控制上面的题
  jumpto(e) {
    let idx = e.target.dataset.index
    this.setData({
      index: e.target.dataset.index,
      result: this.data.resultArr[idx] ? this.data.resultArr[idx].split('') : []
    })
  },

  //点击提交
  onSbmit() {
    if (this.data.result.sort().join('') == JSON.parse(this.data.list[this.data.index].answers).sort().join('')) {
      this.data.list[this.data.index].color = 'green'
    } else {
      this.data.list[this.data.index].color = 'red'
    }
    this.setData({
      list: this.data.list
    })
    console.log(this.data.list);
    let eachScore = 100 / this.data.list.length//每题多少分
    let YesLen = this.data.list.filter(item => {//过滤list数组里color为正确的
      return item.color == "green"
    }).length
    Dialog.alert({
      title: '标题',
      message: '您的分数为' + YesLen * eachScore + '分',
    }).then(() => {
      // on close
    });
  },
  //点击底部弹出框事件
  popupClick() {
    this.setData({
      show: true
    })
  },
  onClose() {
    this.setData({
      show: false
    })
  },
  //补零
  buLing: function (n) {
    return n < 10 ? '0' + n : n
  },
  //倒计时
  start() {
    let totalSeconds = this.data.totalTime * 60;//总秒数
    let leftSeconds = totalSeconds;
    const interval = setInterval(() => {
      let min = Math.floor(leftSeconds / 60);//分
      let sec = leftSeconds % 60;//秒
      this.setData({
        time: this.buLing(min) + ":" + this.buLing(sec),//倒计时补零
        value: Math.round((leftSeconds / totalSeconds) * 100)  //倒计时百分比 Math.round四舍五入
      })
      if (leftSeconds == 0) {
        clearInterval(interval);
      }
      leftSeconds--;
    }, 1000);
  },
  //上一题
  lastTap() {
    if (this.data.index == 0) return
    this.setData({
      index: this.data.index - 1,
      // option:JSON.parse(this.data.list[this.data.index-1].options),//上一题的选项
      result: this.data.resultArr[this.data.index - 1]?this.data.resultArr[this.data.index - 1].split(''):[],//保存上一题的答案
      answer: JSON.parse(this.data.list[this.data.index - 1].answers)//点击上一题赋值
    })
  },
  //下一题
  nextTap() {
    // if () {

    // }
    if (this.data.index == this.data.list.length - 1) return
    if (this.data.resultArr[this.data.index + 1]) {//判断resultArr某一项是否存在
      this.data.resultArr[this.data.index] = this.data.result.sort().join('')//继续赋值
      this.setData({//点击下一题  获取当前索引的答案并赋值
        result: this.data.resultArr[this.data.index + 1].split('')
      })
    } else {
      this.data.resultArr[this.data.index] = this.data.result.sort().join('')
      this.setData({
        result: []
      })
    }
    console.log(this.data.resultArr)
    /////////////////////
    if (this.data.resultArr[this.data.index]) {
      if (this.data.resultArr[this.data.index] == this.data.answer.sort().join("")) {//判断选中的答案==当前题的答案
        this.data.list[this.data.index].color = 'green'//对了success
      } else {
        this.data.list[this.data.index].color = 'red '//错了danger
      }
    } else {
      this.data.list[this.data.index].color = ''//没选是warning
    }
    this.setData({
      list: this.data.list//判断完给list重新赋值
    })
    this.setData({//展示下一题的数据
      index: this.data.index + 1,
      // option:JSON.parse(this.data.list[this.data.index+1].options),//下一题的选项,
      answer: JSON.parse(this.data.list[this.data.index + 1].answers)//下一题的答案
    })
  },

  onChange(event) {
    this.setData({
      result: event.detail,
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getList()
    this.start()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})